Newer integrated circuit (IC) technologies typically operate at lower power-supply voltage levels. Because different IC technologies support different voltage levels, different I/O signaling standards have been developed for different IC technologies. It is often desirable, however, to provide a programmable device such as an FPGA that can support multiple, different I/O signaling standards in order to be able to configure the programmable device with different external components that conform to the different I/O signaling standards. Such a programmable device is typically implemented with different sets of circuitry operating under different power-supply domains.
For example, in order to communicate with an external component implemented using older IC technology that operates under a higher-voltage power-supply domain, an FPGA may have I/O circuitry implemented using the older IC technology and a programmable logic core implemented using newer IC technology operating under a lower-voltage power-supply domain.
In order for the higher-voltage I/O circuitry to communicate with the lower-voltage logic core, such an FPGA is typically implemented with level-shifting circuitry that converts signals generated under one power-supply domain into corresponding signals conforming to a different power-supply domain.
Under normal operating conditions, where both power supplies provide power at their proper full-voltage levels, such level-shifting circuitry operates properly to convert signals between the two power-supply domains. However, under certain conditions, for example, where the voltage generated by one power supply is not at its proper full-voltage level, the level-shifting circuitry may generate indeterminate output signals that can lead to undesirable results in the circuitry that receives those output signals. Depending on the particular situation, the condition may exist for a relatively long period of time (e.g., when a power supply is faulty or even inoperative) or for a relatively short period of time (e.g., during power-on where one power supply reaches its full-voltage level before another or during hot-socket operations where a component is configured into a system that is already powered on, but where the different power-supply voltage levels within the newly added component ramp up at different times and/or at different rates).